import java.util.Scanner;

/**
 * @Title: 单调栈
 * @Author 贾金博
 * @Package PACKAGE_NAME
 * @Date 2024/3/5 20:53
 * @description:
 *  给定一个长度为 N 的整数数列，
 *  输出每个数左边第一个比它小的数，如果不存在则输出 −1
 * 。
 */
public class 单调栈 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n + 10];
        int[] stack = new int[n + 10];
        int top = 0; // 表示没元素
        for (int i = 1; i <= n; ++ i ) {
            a[i] = sc.nextInt();
            if(top == 0) {
                System.out.print(-1 + " ");
            } else {
                //删除的操作
                while(top != 0 && a[i] <= stack[top - 1]) {
                    top--;
                }
                if(top == 0) {
                    System.out.print(-1 + " ");
                } else {
                    System.out.print(stack[top - 1] + " ");
                }
            }
            stack[top++] = a[i];
        }

    }
}
